package com.lumlord.common.domain;

import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.lumlord.common.annotation.mybatis.SqlInjection;
import com.lumlord.common.annotation.mybatis.SqlInjectionColumn;
import com.lumlord.common.annotation.mybatis.SqlInjectionType;
import com.lumlord.common.annotation.pojo.IgnoreColumn;
import com.lumlord.common.annotation.pojo.PK;
import com.lumlord.common.annotation.pojo.Table;

import java.lang.Integer;
import java.util.Date;
import java.util.List;

/**
 * 用户表 User
 * 
 * @author gpf_自动生成
 * @email 372138617@qq.com
 * @date 2020年10月14日 13:41:43
 */
@Table(value = "t_user", DB = "new_security_server")
public class User   implements Serializable {

	@IgnoreColumn
	private static final long serialVersionUID = 1L;
	/**  关联映射字段 开始 **/


	/**
	 * 权限树
	 */
	@IgnoreColumn
	private List<LumlordApi> actions;

	public List<LumlordApi> getActions() {
		return actions;
	}

	public void setActions(List<LumlordApi> actions) {
		this.actions = actions;
	}

	/**  关联映射字段 结束 **/

	/** 主键ID，自增 **/
	@PK("id")	private Integer id;

	/** 用户账号 **/
	private String account;

	/** 用户名 **/
	private String userName;

	/** 用户手机号 **/
	private String mobilePhone;

	/** 登录密码 **/
	private String password;

	/** 禁用状态（1禁用，0未禁用/默认） **/
	private Integer status;

	/** 系统肤色 **/
	private String skinColor;

	/** redisToken 值。 **/
	private String tooken;

	/** 最后登录时间 **/
	private Date lastLoginTime;

	/** 注册时间 **/
	@SqlInjection(types = SqlInjectionType.INSERT, column = SqlInjectionColumn.DATE)
	private Date registerTime;

	/** 登录次数 默认是 0  **/
	@SqlInjection(types = SqlInjectionType.INSERT, defval = "0" )
	private Integer loginTimes;

	/** 登录IP **/
	private String ip;

	/** 登录来源  0 PC 1 APP **/
	private Integer loginSource;

	/** 在岗状态(0在岗1离岗) **/
	@SqlInjection(types = SqlInjectionType.INSERT, defval = "0" )
	private Integer dutyState;

	/** 入职日期 **/
	@SqlInjection(types = SqlInjectionType.INSERT, column = SqlInjectionColumn.DATE)
	private Date joinDate;

	/** 备注 **/
	private String remark;

	/** 聘用方式 **/
	private Integer employType;

	/** 离职日期 **/
	private Date quitDate;

	/** 身份证号码 **/
	private String idNumber;

	/** 是否实名认证 0 不是 1 是 **/
	@SqlInjection(types = SqlInjectionType.INSERT, defval = "0")
	private Integer isRealname;

	/** 用户头像 **/
	private String headAddress;

	/** 管理员 启用状态 0 未启用 1 启用 -1非管理员**/
	@SqlInjection(types = SqlInjectionType.INSERT, defval = "-1")
	private Integer startUseing;

	/** 账号类型  1主管理员 ， 2子管理员 ， 默认 0 **/
	@SqlInjection(types = SqlInjectionType.INSERT, defval = "0")
	private Integer accountType;

	/** 在职证明附件 **/
	private String managerProveAttr;

	/** 职位ID **/
	private Integer postId;

	/** 加入状态  0 未加入 1加入  **/
	private Integer joinCheckState;


	/**  基础字段 开始 **/

	/** 添加时间 **/
	@SqlInjection(types = SqlInjectionType.INSERT, column = SqlInjectionColumn.DATE)
	private Date addTime;

	/** 修改时间 **/
	@SqlInjection(types = { SqlInjectionType.INSERT, SqlInjectionType.UPDATE }, column = SqlInjectionColumn.DATE)
	private Date updateTime;

	/** 添加用户 **/
	@SqlInjection(types = { SqlInjectionType.INSERT, SqlInjectionType.QUERY }, column = SqlInjectionColumn.USER)
	private Integer addUser;


	/** 修改用户 **/
	@SqlInjection(types = { SqlInjectionType.INSERT, SqlInjectionType.UPDATE }, column = SqlInjectionColumn.USER)
	private Integer updateUser;


	/** 逻辑删除 0 表示不删除 ，1表示删除 **/
	@SqlInjection(types = { SqlInjectionType.INSERT, SqlInjectionType.DEL, SqlInjectionType.QUERY,
			SqlInjectionType.UPDATE }, defval = "0")
	@JsonIgnore  //返回时排除掉这个字段
	private Integer state; //逻辑删除

	private String contctNum; //联系人电话

	private String contct; //联系人

	private Integer companyId; //企业ID

	public Integer getCompanyId() {
		return companyId;
	}

	public void setCompanyId(Integer companyId) {
		this.companyId = companyId;
	}

	public Date getAddTime() {
		return addTime;
	}

	public void setAddTime(Date addTime) {
		this.addTime = addTime;
	}

	public Date getUpdateTime() {
		return updateTime;
	}

	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}

	public Integer getAddUser() {
		return addUser;
	}

	public void setAddUser(Integer addUser) {
		this.addUser = addUser;
	}

	public Integer getUpdateUser() {
		return updateUser;
	}

	public void setUpdateUser(Integer updateUser) {
		this.updateUser = updateUser;
	}

	public Integer getState() {
		return state;
	}

	public void setState(Integer state) {
		this.state = state;
	}

	/** 基础字段 结束 **/

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}


	public String getAccount() {
		return account;
	}

	public void setAccount(String account) {
		this.account = account;
	}


	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}


	public String getMobilePhone() {
		return mobilePhone;
	}

	public void setMobilePhone(String mobilePhone) {
		this.mobilePhone = mobilePhone;
	}


	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}


	public Integer getStatus() {
		return status;
	}

	public void setStatus(Integer status) {
		this.status = status;
	}


	public String getSkinColor() {
		return skinColor;
	}

	public void setSkinColor(String skinColor) {
		this.skinColor = skinColor;
	}


	public String getTooken() {
		return tooken;
	}

	public void setTooken(String tooken) {
		this.tooken = tooken;
	}


	public Date getLastLoginTime() {
		return lastLoginTime;
	}

	public void setLastLoginTime(Date lastLoginTime) {
		this.lastLoginTime = lastLoginTime;
	}


	public Date getRegisterTime() {
		return registerTime;
	}

	public void setRegisterTime(Date registerTime) {
		this.registerTime = registerTime;
	}


	public Integer getLoginTimes() {
		return loginTimes;
	}

	public void setLoginTimes(Integer loginTimes) {
		this.loginTimes = loginTimes;
	}


	public String getIp() {
		return ip;
	}

	public void setIp(String ip) {
		this.ip = ip;
	}


	public Integer getLoginSource() {
		return loginSource;
	}

	public void setLoginSource(Integer loginSource) {
		this.loginSource = loginSource;
	}

	public Integer getDutyState() {
		return dutyState;
	}

	public void setDutyState(Integer dutyState) {
		this.dutyState = dutyState;
	}


	public Date getJoinDate() {
		return joinDate;
	}

	public void setJoinDate(Date joinDate) {
		this.joinDate = joinDate;
	}


	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}


	public Integer getEmployType() {
		return employType;
	}

	public void setEmployType(Integer employType) {
		this.employType = employType;
	}


	public Date getQuitDate() {
		return quitDate;
	}

	public void setQuitDate(Date quitDate) {
		this.quitDate = quitDate;
	}


	public String getIdNumber() {
		return idNumber;
	}

	public void setIdNumber(String idNumber) {
		this.idNumber = idNumber;
	}


	public Integer getIsRealname() {
		return isRealname;
	}

	public void setIsRealname(Integer isRealname) {
		this.isRealname = isRealname;
	}


	public String getHeadAddress() {
		return headAddress;
	}

	public void setHeadAddress(String headAddress) {
		this.headAddress = headAddress;
	}


	public Integer getStartUseing() {
		return startUseing;
	}

	public void setStartUseing(Integer startUseing) {
		this.startUseing = startUseing;
	}


	public Integer getAccountType() {
		return accountType;
	}

	public void setAccountType(Integer accountType) {
		this.accountType = accountType;
	}


	public String getManagerProveAttr() {
		return managerProveAttr;
	}

	public void setManagerProveAttr(String managerProveAttr) {
		this.managerProveAttr = managerProveAttr;
	}


	public Integer getPostId() {
		return postId;
	}

	public void setPostId(Integer postId) {
		this.postId = postId;
	}


	public Integer getJoinCheckState() {
		return joinCheckState;
	}

	public void setJoinCheckState(Integer joinCheckState) {
		this.joinCheckState = joinCheckState;
	}

	public String getContctNum() {
		return contctNum;
	}

	public void setContctNum(String contctNum) {
		this.contctNum = contctNum;
	}

	public String getContct() {
		return contct;
	}

	public void setContct(String contct) {
		this.contct = contct;
	}
}
